package eteam.aps.model.entity;

import com.baomidou.mybatisplus.annotation.TableField;

import java.time.LocalDateTime;

/**
 * 产品信息通用字段抽象
 *
 * @date 2022-12-14
 * @author WMT
 */
public abstract class ProductParentEntity {

    /**
     * 产品大类【50装备】
     */
    public static final int PRODUCT_CATEGORY_EQUIP = 50;

    /**
     * 产品大类【60器材】
     */
    public static final int PRODUCT_CATEGORY_EQUIPMENT = 60;

    /**
     * 产品大类【70器材】
     */
    public static final int PRODUCT_CATEGORY_MACHINE_TOOL = 70;

    /**
     * 序列号管理【1启用序列号管理】
     */
    public static final int IS_SERIAL_ENABLE = 1;

    /**
     * 序列号管理【-1停用序列号管理】
     */
    public static final int IS_SERIAL_DISABLE = -1;

    /**
     * 审核状态【0草稿】
     */
    public static final int FSTATE_DRAFT = 0;

    /**
     * 审核状态【审核中】
     */
    public static final int FSTATE_AUDITING = 10;

    /**
     * 审核状态【作废/逻辑删除】
     */
    public static final int FSTATE_DELETED = 20;

    /**
     * 审核状态【审核通过】
     */
    public static final int FSTATE_PASSED = 30;

    /**
     * 状态【冻结】
     */
    public static final int FSTATE_FREEZE = 40;

    /**
     * 标志【0：初始化】
     */
    public static final int FFLAG_INIT = 0;

    /**
     * 标志【0：更新】
     */
    public static final int FFLAG_UPDATE = 1;

    /**
     * 内码， 表的主键 ---雪花算法产生的long字符串 not null
     */
    @TableField("FId")
    protected String fId;

    /**
     * 产品大类【50：装备，60：器材，70：机工具】
     */
    @TableField("FProductCategory")
    protected int fProductCategory;

    /**
     * 产品单位，not null
     */
    @TableField("FProductUnit")
    protected String fProductUnit;

    /**
     * 产品规格，not null
     */
    @TableField("FProductSpec")
    protected String fProductSpec;

    /**
     * 产品缩略图
     */
    @TableField("FProductPic")
    protected String fProductPic;

    /**
     * 制造商；关联sp_protection的fOrgCategory为60的机构
     */
    @TableField("FProductAffiliation")
    protected String fProductAffiliation;

    /**
     * 型号Id，not null,关联ed_data_dict_category FddcName为型号的下面的ed_data_dict fId
     */
    @TableField("FProductModel")
    protected String fProductModel;

    /**
     * 参数详情，由选择的参数子表的code和 name 拼接
     */
    @TableField("FPpInfo")
    protected String fPpInfo;

    /**
     * 序列号管理【-1：不用序列号管理，1：序列号管理】
     */
    @TableField("FPIsSerial")
    protected int fPIsSerial;

    /**
     * 首次装备日期
     */
    @TableField("FPFirstEquipTime")
    protected LocalDateTime fPFirstEquipTime;

    /**
     * 出厂日期，单据自动回填
     */
    @TableField("FProductionTime")
    protected LocalDateTime fProductionTime;

    /**
     * 装备承研承制厂家
     */
    @TableField("FProductVender")
    protected String fProductVender;

    /**
     * 装备质量状况
     */
    @TableField("FProductSupplier")
    protected String fProductSupplier;

    /**
     * 该条记录的备注
     */
    @TableField("FRemark")
    protected String fRemark;

    /**
     * 账套，创建时候创建人所在的 【部门】，不是冗余字段，因为 创建人 可能换部门；外键，关联 system模块的 org 的 forgid not null
     */
    @TableField("FBookCode")
    protected String fBookCode;

    /**
     * 审核状态【0草稿；10审核中；20作废；30审核通过】not null
     */
    @TableField("FState")
    protected int fState;

    /**
     * 创建人---外键，关联 system模块的 user 的 fuserid not null
     */
    @TableField("FCreateUserId")
    protected String fCreateUserId;

    /**
     * 创建时间 not null
     */
    @TableField("FCreatorTime")
    protected LocalDateTime fCreatorTime;

    /**
     * 最近修改人---外键，关联 system模块的 user 的 fuserid
     */
    @TableField("FLastModifyUserId")
    protected String fLastModifyUserId;

    /**
     * 修改时间 not null， 默认是 创建时间 用于 时间排序
     */
    @TableField("FLastModifyTime")
    protected LocalDateTime fLastModifyTime;

    /**
     * 审核人---外键，关联 system模块的 user 的 fuserid
     */
    @TableField("FAuditUserId")
    protected String fAuditUserId;

    /**
     * 审核时间
     */
    @TableField("FAuditorTime")
    protected LocalDateTime fAuditorTime;

    public String getfId() {
        return fId;
    }

    public void setfId(String fId) {
        this.fId = fId;
    }

    public int getfProductCategory() {
        return fProductCategory;
    }

    public void setfProductCategory(int fProductCategory) {
        this.fProductCategory = fProductCategory;
    }

    public String getfProductUnit() {
        return fProductUnit;
    }

    public void setfProductUnit(String fProductUnit) {
        this.fProductUnit = fProductUnit;
    }

    public String getfProductModel() {
        return fProductModel;
    }

    public void setfProductModel(String fProductModel) {
        this.fProductModel = fProductModel;
    }

    public String getfPpInfo() {
        return fPpInfo;
    }

    public void setfPpInfo(String fPpInfo) {
        this.fPpInfo = fPpInfo;
    }

    public int getfPIsSerial() {
        return fPIsSerial;
    }

    public void setfPIsSerial(int fPIsSerial) {
        this.fPIsSerial = fPIsSerial;
    }

    public LocalDateTime getfPFirstEquipTime() {
        return fPFirstEquipTime;
    }

    public void setfPFirstEquipTime(LocalDateTime fPFirstEquipTime) {
        this.fPFirstEquipTime = fPFirstEquipTime;
    }

    public LocalDateTime getfProductionTime() {
        return fProductionTime;
    }

    public void setfProductionTime(LocalDateTime fProductionTime) {
        this.fProductionTime = fProductionTime;
    }

    public String getfProductVender() {
        return fProductVender;
    }

    public void setfProductVender(String fProductVender) {
        this.fProductVender = fProductVender;
    }

    public String getfProductSupplier() {
        return fProductSupplier;
    }

    public void setfProductSupplier(String fProductSupplier) {
        this.fProductSupplier = fProductSupplier;
    }

    public String getfRemark() {
        return fRemark;
    }

    public void setfRemark(String fRemark) {
        this.fRemark = fRemark;
    }

    public String getfBookCode() {
        return fBookCode;
    }

    public void setfBookCode(String fBookCode) {
        this.fBookCode = fBookCode;
    }

    public int getfState() {
        return fState;
    }

    public void setfState(int fState) {
        this.fState = fState;
    }

    public String getfCreateUserId() {
        return fCreateUserId;
    }

    public void setfCreateUserId(String fCreateUserId) {
        this.fCreateUserId = fCreateUserId;
    }

    public LocalDateTime getfCreatorTime() {
        return fCreatorTime;
    }

    public void setfCreatorTime(LocalDateTime fCreatorTime) {
        this.fCreatorTime = fCreatorTime;
    }

    public String getfLastModifyUserId() {
        return fLastModifyUserId;
    }

    public void setfLastModifyUserId(String fLastModifyUserId) {
        this.fLastModifyUserId = fLastModifyUserId;
    }

    public LocalDateTime getfLastModifyTime() {
        return fLastModifyTime;
    }

    public void setfLastModifyTime(LocalDateTime fLastModifyTime) {
        this.fLastModifyTime = fLastModifyTime;
    }

    public String getfAuditUserId() {
        return fAuditUserId;
    }

    public void setfAuditUserId(String fAuditUserId) {
        this.fAuditUserId = fAuditUserId;
    }

    public LocalDateTime getfAuditorTime() {
        return fAuditorTime;
    }

    public void setfAuditorTime(LocalDateTime fAuditorTime) {
        this.fAuditorTime = fAuditorTime;
    }

    public String getfProductSpec() {
        return fProductSpec;
    }

    public void setfProductSpec(String fProductSpec) {
        this.fProductSpec = fProductSpec;
    }

    public String getfProductPic() {
        return fProductPic;
    }

    public void setfProductPic(String fProductPic) {
        this.fProductPic = fProductPic;
    }

    public String getfProductAffiliation() {
        return fProductAffiliation;
    }

    public void setfProductAffiliation(String fProductAffiliation) {
        this.fProductAffiliation = fProductAffiliation;
    }
}
